
#include "queueA.h"
#include "queueB.h"

#include "queueC.h"
int main() {
  QueueA qa;
  QueueB qb;
  initA(&qa);
  initB(&qb);

  printf("=== 方法 A 测试 ===\n");
  for (int i = 1; i <= 5; i++) {
    if (enqueueA(&qa, i))
      printf("入队 %d 成功\n", i);
    else
      printf("入队 %d 失败 (队满)\n", i);
  }

  int x;
  while (dequeueA(&qa, &x)) {
    printf("出队 %d\n", x);
  }

  printf("\n=== 方法 B 测试 ===\n");
  for (int i = 1; i <= 5; i++) {
    if (enqueueB(&qb, i))
      printf("入队 %d 成功\n", i);
    else
      printf("入队 %d 失败 (队满)\n", i);
  }

  while (dequeueB(&qb, &x)) {
    printf("出队 %d\n", x);
  }

  QueueC qc;
  initC(&qc);
  printf("\n=== 方法 C 测试 ===\n");
  for (int i = 1; i <= 3; i++) {
    if (enqueueC(&qc, i))
      printf("入队 %d 成功\n", i);
    else
      printf("入队 %d 失败 (队满)\n", i);
  }
  show(&qc);
  while (dequeueC(&qc, &x)) {
    printf("出队 %d\n", x);
  }
  for (int i = 4; i <= 7; i++) {
    if (enqueueC(&qc, i))
      printf("入队 %d 成功\n", i);
    else
      printf("入队 %d 失败 (队满)\n", i);
  }
  show(&qc);
  return 0;
}
